﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using NUnit.Framework;
using Grupo2.Persistencia;
using Grupo2.Dominio;

namespace Grupo2.Pruebas
{
    [TestFixture]
    public class TestAvisoDAO
    {
        [Test]
        public void TestCrearAviso()
        {
            Aviso nuevoAviso = new Aviso();
            nuevoAviso.Id_Aviso = 1;
            nuevoAviso.Ofertante.Id_Ofertante = 1;    // Momentaneamente para efectos de pruebas
            nuevoAviso.Puesto_Trabajo = "JEFE SISTEMAS";
            nuevoAviso.Fecha_Publicacion = DateTime.Parse("24/05/2011");
            nuevoAviso.Condicion_Publicacion = "S";//Convert.ToChar("S");
            nuevoAviso.Localidad = "LIMA";
            nuevoAviso.Rango_Sueldo = "4000-5000";
            nuevoAviso.Modalidad_Trabajo = "En planilla y beneficios";
            nuevoAviso.Idioma = "INGLES";
            nuevoAviso.Nivel_Academico = "Ing.Sistemas";
            nuevoAviso.Carreras_Afines = "Ing.Electronica";
            nuevoAviso.Dias_Vigencia = 5;
            nuevoAviso.Horario_Trabajo = "9am - 6pm";
            nuevoAviso.Periodo_Contrato = "C/3 meses";
            //nuevoAviso.Principales_Funciones = "Organizar/coordinar/dirigir";
            nuevoAviso.Numero_Vacantes = 1;

            AvisoDAO AvisoDAO = new AvisoDAO();
            Aviso AvisoCreado = AvisoDAO.CrearAviso(nuevoAviso);
            Assert.NotNull(AvisoCreado);
        }

        [Test]
        public void TestObtenerAviso()
        {
            Int32 nId_Aviso = 1;
            AvisoDAO oAviso = new AvisoDAO();

            Aviso oAvisoExistente = oAviso.ObtenerAviso(nId_Aviso);
            Assert.AreEqual(nId_Aviso, oAvisoExistente.Id_Aviso);
            Assert.NotNull(oAvisoExistente.Puesto_Trabajo);
            Assert.NotNull(oAvisoExistente.Fecha_Publicacion);
            Assert.NotNull(oAvisoExistente.Condicion_Publicacion);
            Assert.NotNull(oAvisoExistente.Localidad);
            Assert.NotNull(oAvisoExistente.Rango_Sueldo);
            Assert.NotNull(oAvisoExistente.Modalidad_Trabajo);
        }

        [Test]
        public void TestModificarAviso()
        {
            Int32 nId_Aviso = 1;
            AvisoDAO oAviso = new AvisoDAO();

            Aviso oAvisoExistente = oAviso.ObtenerAviso(nId_Aviso);
            oAvisoExistente.Puesto_Trabajo = "GERENTE";

            Aviso AvisoModificado = oAviso.ModificarAviso(oAvisoExistente);
            Assert.NotNull(AvisoModificado);
        }

        [Test]
        public void TestEliminarAviso()
        {
            Int32 nId_aviso = 1;
            AvisoDAO oAviso = new AvisoDAO();
            Aviso oAvisoExistente = oAviso.ObtenerAviso(nId_aviso);
            if (oAvisoExistente.Id_Aviso == nId_aviso)
            {
                oAviso.EliminarAviso(oAvisoExistente.Id_Aviso);
            }
        }
    }
}